/**
  1.集合包括：Array List Set Map Tuple Range
  2.变长数组的增删改操作(Array List Set Map等也是通用的)
		- 使用`+=`添加元素
		- 使用`-=`删除元素
		- 使用`++=`追加一个数组到变长数组
    
*/

  println("Welcome to the Scala worksheet")
	 //----------------数组------------------
	 val a1 = Array(1,2,3)
	 //声明定长数组
	 val a2 = new Array[Int](3)
	 a2(0) = 2
	 a2(1) = 3
	 a2(2) = 4
	 println(a2(2))
	 //通过下标取值,等价于a1(0)
	 a1.apply(0)
	 a1
	  //变长数组
	 val a3 = scala.collection.mutable.ArrayBuffer(1,2,3)

   //添加元素
   a3.append(6)
   a3
   //添加元素
   a3 += 22
   //删除元素
   a3 -= 2
   //追加一个数组a2
   a3 ++= a2
   a3
   val a4 = Array(1,2,3,4,5)
   //取出前n项,并返回一个新数组
   val r1 = a4.take(3)
   //取出后n项,并返回一个新数组
   val r2 = a4.takeRight(3)
   //删除前n项,并返回一个新数组
	 val r3 = a4.drop(3)
	  //删除后n项,并返回一个新数组
	 val r4 = a4.dropRight(3)
	 //过滤，返回新数组
	 val r5 = a4.filter(x=> x>2)
	 //过滤后取前两项，返回新数组
	 val r6 = a4.filter(x=> x>2).take(2)
	 
	 val r7 = a4.sum
	 val r8 = a4.max
	 val r9 = a4.min
	 val r10 = a4.length
	 val r11 = a4.count(x=> x%2 == 0)
	 //去重
	 val r12 = a4.distinct
	 //map方法：最重要的方法。
	 //作用：将集合中的元素转变成另外一种形式
	 a4.map{x => x*10}
	 //排序
	 val a5 = Array(2,7,3,4,5)
	 //升序
	 val r13 = a5.sortBy(x=>x)
	 //降序
	 val r14 = a5.sortBy(-1*_)
   val r15 = a5.sortWith((x,y)=>x>y)
   val r16 = a5.sortWith(_>_)

	 val a6 = Array(2,4,6,8)
	 //交集
	 val r15 = a5.intersect(a6)
   //并集
   val r16 = a5.union(a6)
   //差集
   val r17 = a5.diff(a6)
   //将集合中的元素以字符串返回
   a6.mkString
   //将集合中的元素以字符串返回：以|隔开
   a6.mkString("|")
   
